package com.loto.graphics;

import java.io.File;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;


public class CsvCombinaisonDao implements CombinaisonDao{
	
    private CsvFile csvFile;

    private CsvCombinaisonDao() {
        super();
    }

    public CsvCombinaisonDao(File file) throws IOException {
        this();
        this.csvFile = new CsvFile01(file);
    }
	
	public List<Combinaison> findAllCombinaisons() {

        List<Combinaison> combinaisons = new ArrayList<Combinaison>();

        List<String[]> data = csvFile.getData();
        final List<String[]> dataSansTitre = data;
        dataSansTitre.remove(0);
        
        for(String[] oneData : dataSansTitre) {
            final Combinaison combinaison = tabToCombinaison(oneData);
            combinaisons.add(combinaison);
        }
        return combinaisons;
    }


	private Combinaison tabToCombinaison(String[] tab) {
	    SimpleCombinaison combinaison = new SimpleCombinaison();

	    combinaison.setAnneeNumeroTirage(Integer.parseInt(tab[0]));
	    combinaison.setJourTirage(formatJour(tab[1]));
	    combinaison.setDateTirage(formatDate(tab[2]));
	    combinaison.setCombinaisonGagnante(tab[10]);
	    combinaison.setNbGagnantRang1(tab[11]);
	    combinaison.setNbGagnantRang2(tab[13]);
	    combinaison.setNbGagnantRang3(tab[15]);
	    combinaison.setNumJokerPlus(tab[23]);
	    combinaison.setDevise(tab[24]);




	    return combinaison;
	}
	
	private String formatDate(String date) {
		
	    java.util.Date utilDate = null;
	    String d="";

	    try {
	      SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
	      utilDate = formatter.parse(date);
	      formatter = new SimpleDateFormat("yyyy/MM/dd");
	      d = formatter.format(utilDate);
	    } 
	    
	    catch (ParseException e) {
	      System.out.println(e.toString());
	      e.printStackTrace();
	    }
		return d;
		
	}
	
	private String formatJour(String jour) {
		jour=jour.toLowerCase();
		String premiereLettre = jour.charAt(0)+"";
		String j= "";
		premiereLettre=premiereLettre.toUpperCase();
		j=premiereLettre;
		for (int i = 1; i < jour.length(); i++) {
			j=j+jour.charAt(i);
		}
		return j;
				
	}



}
